package com.zjs.jsp.domain.jsp;

import com.sun.corba.se.spi.ior.ObjectId;
import lombok.Data;
import org.springframework.data.annotation.Id;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单数据
 *
 * @author 李文
 * @create 2017-08-31 13:58
 **/
@Data
public class Jsp_Order
{


    @Id
    private ObjectId id;

    /**
     * 客户订单ID
     */
    private String oid;


    /**
     * 客户标识
     */
    private String clientFlag;

    /**
     * 客户订单 uuid
     */
    private String ouuid;


    /**
     * 工作单号
     */
    private String mid;

    /**
     * 商户备注信息
     */
    private String pr;

    /**
     * 商户订单号,要求唯一
     */
    private String poc;


    /**
     * 门店名称
     */
    private String ftn;

    /**
     * 门店编码
     */
    private String mdbm;

    /**
     * 取货点地址
     */
    private String fta;

    /**
     * 取货点联系方式, 只支持手机号,400开头电话以及座机号码
     */
    private String ftt;

    /**
     * 取货点经度
     */
    private BigDecimal ftlx;

    /**
     * 取货点纬度
     */
    private BigDecimal ftly;


    /**
     * 取货点经纬度来源, 高德地图
     */
    private Integer fps;


    /**
     * 订单总金额（不包含商家的任何活动以及折扣的金额）
     */
    private BigDecimal ota;

    /**
     * 客户需要支付的金额
     */
    private BigDecimal oaa;

    /**
     * 用户备注
     */
    private String or;

    /**
     * 订单支付状态 0:未支付 1:已支付
     */
    private Integer ops;

    /**
     * 订单支付方式 1:在线支付
     */
    private Integer opm;


    /**
     * 订单货物件数
     */
    private Integer gc;

    /**
     * 需要送达时间（毫秒)
     */
    private Long rrt;

    /**
     * 下单时间(毫秒)
     */
    private Long oat;

    /**
     * 订单总重量（kg），营业类型选定为果蔬生鲜、商店超市、其他三类时必填，大于0kg并且小于等于6kg
     */
    private BigDecimal ow;


    /**
     * 收货人姓名
     */
    private String srn;

    /**
     * 收货人联系电话, 只支持手机号, 只支持手机号
     */
    private String srpp;


    /**
     * 收货人地址
     */
    private String sra;

    /**
     * 收货人经度
     */
    private BigDecimal srlx;

    /**
     * 收货人纬度
     */
    private BigDecimal srly;

    /**
     * 经纬度来源:高德地图
     */
    private Integer sps;

    /**
     * 商品信息
     */
    private List<Jsp_Items> is;

    /**
     * 商家订单流水号, 方便配送骑手到店取货, 支持数字,字母及#等常见字符. 如不填写, 安鲜达将截取商家订单号后4位作为流水号.
     */
    private String sn;


    /**
     * 订单状态  未接单：10   已接单：20   到店：30 派送中：40(取货) 签收：50 拒收：60
     */
    private String ddzt;


    /**
     * 是否需要发票 0 不需要，1 需要
     */
    private Integer IIn;

    /**
     * 发票抬头
     */
    private String It;


    /**
     * 配送费
     */
    private BigDecimal odc;


    /**
     * 接受订单时间
     */
    private String date;


    /**
     * 是否取消  0  否 1 是
     */
    private Integer cancel;


    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("{");
        sb.append("\"id\":\"")
                .append(id).append('\"');
        sb.append(",\"oid\":\"")
                .append(oid).append('\"');
        sb.append(",\"clientFlag\":\"")
                .append(clientFlag).append('\"');
        sb.append(",\"ouuid\":\"")
                .append(ouuid).append('\"');
        sb.append(",\"pr\":\"")
                .append(pr).append('\"');
        sb.append(",\"poc\":\"")
                .append(poc).append('\"');
        sb.append(",\"ftn\":\"")
                .append(ftn).append('\"');
        sb.append(",\"mdbm\":\"")
                .append(mdbm).append('\"');
        sb.append(",\"fta\":\"")
                .append(fta).append('\"');
        sb.append(",\"ftt\":\"")
                .append(ftt).append('\"');
        sb.append(",\"ftlx\":")
                .append(ftlx);
        sb.append(",\"ftly\":")
                .append(ftly);
        sb.append(",\"fps\":")
                .append(fps);
        sb.append(",\"ota\":")
                .append(ota);
        sb.append(",\"oaa\":")
                .append(oaa);
        sb.append(",\"or\":\"")
                .append(or).append('\"');
        sb.append(",\"ops\":")
                .append(ops);
        sb.append(",\"opm\":")
                .append(opm);
        sb.append(",\"gc\":")
                .append(gc);
        sb.append(",\"rrt\":")
                .append(rrt);
        sb.append(",\"oat\":")
                .append(oat);
        sb.append(",\"ow\":")
                .append(ow);
        sb.append(",\"srn\":\"")
                .append(srn).append('\"');
        sb.append(",\"srpp\":\"")
                .append(srpp).append('\"');
        sb.append(",\"sra\":\"")
                .append(sra).append('\"');
        sb.append(",\"srlx\":")
                .append(srlx);
        sb.append(",\"srly\":")
                .append(srly);
        sb.append(",\"sps\":")
                .append(sps);
        sb.append(",\"is\":")
                .append(is);
        sb.append(",\"sn\":\"")
                .append(sn).append('\"');
        sb.append(",\"ddzt\":\"")
                .append(ddzt).append('\"');
        sb.append(",\"IIn\":")
                .append(IIn);
        sb.append(",\"It\":\"")
                .append(It).append('\"');
        sb.append(",\"odc\":")
                .append(odc);
        sb.append(",\"date\":\"")
                .append(date).append('\"');
        sb.append(",\"cancel\":")
                .append(cancel);
        sb.append('}');
        return sb.toString();
    }
}